[GAME-2] Acerte os rortões nas janelas (jogo com gráficos)
Publicado por Samuel Leonardo 26/11/2008
[ Hits: 5.857 ]
Homepage: https://nerdki.blogspot.com.br/
Download [GAME2]Acerte o Portões na Janela.tar.gz
Meu segundo script, um jogo simples que mostra como funciona a colisão nos jogos e como simular o tiro de um canhão.
É bem legal, vocês devem conferir!
Acompanha uma versão pré-compilada.
ATENÇÃO: É necessário antes ter os arquivos de desenvolvimento da libSDL instalados.
Para compilar: gcc -o game game.c -lSDL
Para rodar: ./game
/* # # ###desenvolvido por: Samuel Leonardo (Sam L.) EM 20/11/2008 #######Historico de desenvolvimento: ####### A idéia de fazer esse 'game' surgiu por falta do que fazer. :P ########### ############# ATENÇÃO -> USUÁRIOS DE WINDOWS, NÃO SE OFENDAM PELO QUE FIZ COM O ############# LOGO E O DESKTOP DESTE "escelêntiçimo e pherFEItiçimo çixtema" operacional, ############# ACONTECE QUE NÃO CONSEGUI RESISTIR A FAZER UMA PIADA. hehe!!! bricadeira!!! ####### # # ########BAIXE UM EXECELENTE APOSTILA SOBRE DESENVOLVIMENTO DE JOGOS COM SDL AQUI:######### ## http://silveira.wordpress.com/2006/09/21/apostila-de-desenvolvimento-de-jogos/ # ################################################################# */ #include <SDL/SDL.h> #include <SDL/SDL_image.h> int Colisao(SDL_Rect *a, SDL_Rect *b) { return (!((a->x > b->x + b->w)||(a->x + a->w < b->x)||(a->y > b->y + b->h)||(a->y + a->h < b->y))); } int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface *screen, *bala, *alvo[2], *efeito, *cannon, *obstaculo[2]; SDL_Rect destino,fonte[2], posicao; screen = SDL_SetVideoMode(800, 350, 0, SDL_SWSURFACE | SDL_HWSURFACE | SDL_ANYFORMAT); bala = SDL_LoadBMP("Imagens/cabeca.bmp"); alvo[0] = SDL_LoadBMP("Imagens/monitor.bmp"); alvo[1] = SDL_LoadBMP("Imagens/windows-vista-logo.bmp"); efeito = SDL_LoadBMP("Imagens/fumaca.bmp"); cannon = SDL_LoadBMP("Imagens/tux-canhao.bmp"); SDL_SetColorKey(cannon, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(cannon->format, 255, 255, 255)); destino = (SDL_Rect){40,240,20,20};//posição da bala fonte[0] = (SDL_Rect){600, 240,40,40};//posição do XP, obstaculo[0] fonte[1] = (SDL_Rect){700, 240,40,40};//posição do VISTA, obstaculo[1] posicao = (SDL_Rect){0,220,0,0}; //posição do canhão int fim = 0, i; // a bala tem aceleração e velocidade int velo = 0, acel = 1, atira = 0, acres_y = 4; SDL_Event evento; while(!fim) { Uint8 *teclado; SDL_PumpEvents(); teclado = SDL_GetKeyState(0); if(teclado[SDLK_ESCAPE]) fim = 1; if(teclado[SDLK_UP] && !atira) { posicao.y -= 10; destino.y = posicao.y + 20; } if(teclado[SDLK_DOWN] && !atira) { posicao.y += 10; destino.y = posicao.y + 20; } while(SDL_PollEvent(&evento)) if(evento.type == SDL_QUIT) fim =1; if(!atira) { if(teclado[SDLK_SPACE]) { velo = 10; atira = 1; } } if(atira) { velo = velo - acel; destino.y -= velo; destino.x += 30; for(i=0; i < 2;i++) if(Colisao(&destino,&fonte[i])) { SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,255,255,255)); atira = 0; destino.x = 40; destino.y = posicao.y + 20; SDL_BlitSurface(efeito, NULL, screen, &fonte[i]); SDL_Flip(screen); SDL_Delay(1500); } } if(destino.x > 700) { atira = 0; destino.x = 40; destino.y = posicao.y + 20; } if((fonte[0].y + fonte[0].h + acres_y > 350) || (fonte[0].y + acres_y < 0)) acres_y = -acres_y; fonte[0].y += acres_y; SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,255,255,255)); SDL_BlitSurface(bala, NULL, screen, &destino); SDL_BlitSurface(alvo[0], NULL, screen, &fonte[0]); SDL_BlitSurface(alvo[1], NULL, screen, &fonte[1]); SDL_BlitSurface(cannon, NULL, screen, &posicao); SDL_Flip(screen); SDL_Delay(60); } SDL_Quit(); return 0; }
Método de Newton Modificado p/ Raízes Multiplas
Conversão de Decimal para Binário
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)